
//请求成功
function success(res, message, data = {}, code = 200) {
    res.status(code).json({
        status: true,
        message,
        data
    })
}

//请求失败
function failure(res, error) {
    //表单验证错误
    if (error.name === 'SequelizeValidationError') {
        const errors = error.errors.map(err => err.message)
        return res.status(400).json({
            status: false,
            message: '请求参数错误',
            errors
        })
    }
    if (error.name === 'BadRequestError') {
        return res.status(400).json({
            status: false,
            message: '请求参数错误',
            errors: [error.message]
        })
    }
    if (error.name === 'UnauthorizedError') {
        return res.status(401).json({
            status: false,
            message: '认证失败',
            errors: [error.message]
        })
    }

    //token不匹配
    if (error.name === "JsonWebTokenError") {
        return res.status(401).json({
            status: false,
            message: '认证失败',
            errors: ["您提交的token不正确"]
        })
    }

    //token过期
    if (error.name === 'TokenExpiredError') {
        return res.status(401).json({
            status: false,
            message: '认证失败',
            errors: ['token已过期，请重新登录']
        })
    }

    //资源不存在
    if (error.name === 'NotFoundError') {
        return res.status(404).json({
            status: false,
            message: '资源不存在',
            errors: [error.message]
        })
    }

    //服务器错误
    res.status(500).json({
        status: false,
        message: '服务器错误',
        errors: [error.message]
    })
}

module.exports = {
    success,
    failure
}